import { loginAPI, getProfileAPI } from '@/api/user'
export default {
  // 启用命名空间，确保模块内的状态、mutations 和 actions 不会与其他模块冲突
  namespaced: true,
  state: () => {
    return {
      token: '', // 用于存储用户的 token
      profile: {} // 当前用户的权限数据
    }

  },
  mutations: {
    // 设置 token
    setToken(state, token) {
      state.token = token // 将传入的 token 存储到 state 中
    },
    // 设置用户信息
    setProfile(state, profile) {
      state.profile = profile
    },
    // 清除用户信息
    clearUserInfo(state) {
      // 清除Token
      state.token = ''
      state.profile = {}
    }

  },
  actions: {
    // 异步登录操作
    async login(ctx, { username, password }) {
      // 1. 调用登录接口
      const res = await loginAPI({ username, password })
      // 2. 提交mutation更新token
      ctx.commit('setToken', res.data.token)
    },
    // 请求接口获取当前用户的权限数据
    async getProfile(ctx) {
      const res = await getProfileAPI()
      ctx.commit('setProfile', res.data)
       // return后，可以直接在  const perms = await store.dispatch('user/getUserProfile')
      // 时接收到返回的数据
      return res.data.permissions 
    }
  }
}
